package org.calrissian.restdoclet.model;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import com.sun.javadoc.Type;

public class Model {

    private String                     id;
    private String                     name;
    private String                     type;
    private Type                       typeDef;
    private String                     qualifiedType;
    private Map<String, ModelProperty> properties = new LinkedHashMap<String, ModelProperty>();
    private String                     description;
    private String                     baseModel;
    private String                     discriminator;
    private List<String>               subTypes;
    private ModelRef                   items;

    /**
     * Getter method for property <tt>typeDef</tt>.
     *
     * @return property value of typeDef
     */
    public Type getTypeDef() {
        return typeDef;
    }

    /**
     * Setter method for property <tt>typeDef</tt>.
     *
     * @param typeDef
     *            value to be assigned to property typeDef
     */
    public void setTypeDef(Type typeDef) {
        this.typeDef = typeDef;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getQualifiedType() {
        return qualifiedType;
    }

    public void setQualifiedType(String qualifiedType) {
        this.qualifiedType = qualifiedType;
    }

    public Map<String, ModelProperty> getProperties() {
        return properties;
    }

    public void setProperties(Map<String, ModelProperty> properties) {
        this.properties = properties;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getBaseModel() {
        return baseModel;
    }

    public void setBaseModel(String baseModel) {
        this.baseModel = baseModel;
    }

    public String getDiscriminator() {
        return discriminator;
    }

    public void setDiscriminator(String discriminator) {
        this.discriminator = discriminator;
    }

    public List<String> getSubTypes() {
        return subTypes;
    }

    public void setSubTypes(List<String> subTypes) {
        this.subTypes = subTypes;
    }

    public ModelRef getItems() {
        return items;
    }

    public void setItems(ModelRef items) {
        this.items = items;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }
}